In software development, some files may changes between builds, while other files may not change. When preparing a patch or update, developers may only include those files in the patch that have changed between builds. Unfortunately, there is no conventional system for automatically identifying files that have changed between builds. Instead, developers may manually inspect different files by hand to determine whether a particular file should be included in a patch. If the developers make an incorrect list of files to be included in the patch, then the mistake could result in significant delays.
Attempts to automate the process of comparing files and listing deliverable files have generally failed. Developers have attempted to create databases of source files and the files that derive from the source files. But the databases may be difficult to generate and may not practically or easily handle common header files. Developers have also attempted to compare hashes of each section in portable executable files. But the relocation tables of the portable executable files showed differences even when the source code had not changed.
Accordingly, the instant disclosure identifies and addresses a need for additional and improved systems and methods for automatically identifying changes in deliverable files.